In conventional computing environments implementing a hypervisor to execute a virtual machine on a host computing device, the hypervisor may provide the virtual machine with access to hardware resources provided by at least one physical computing device. The hypervisor may allocate physical resources from a pool of physical computing devices, which may include heterogeneous processors providing different levels of functionality. In some environments, a hypervisor may need to migrate a virtual machine from one physical computing device to a second physical computing device; for example, when the first physical computing device requires maintenance or no longer has the capacity to provide the virtual machine with the allocated hardware resources. In the event that the two physical computing devices provide different functionality—for example, heterogeneous processor functionality—the migration of the virtual machine from the first physical computing device to the second may fail. For example, the virtual machine may execute a process requiring access to functionality provided by the first physical computing device but not by the second and a migration of the virtual machine may result in unanticipated execution errors or undesired termination of the virtual machine.
Conventional solutions to this problem typically involve providing homogeneous functionality in the pool of physical computing devices. However, this approach typically limits an administrator's ability to provide a diverse range of functionality for users. Furthermore, as physical resources age and require replacement, administrators may not be able to find replacement devices that provide identical functionality.